Delineating management zones based on historical yield maps

ABSTRACT

In an embodiment, a method comprises: receiving digital yield data representing yields of crops that have been harvested from an agricultural field; applying an empirical cumulative density function to the digital yield data to generate transformed digital yield data; smoothing the transformed digital yield data to result in generating and storing smooth transformed digital yield data; determining a first count value for a plurality of management classes; generating a plurality of first management zones for the agricultural field by clustering the smooth transformed digital yield data and using the first count value; generating a set of first merged management zones by merging one or more small management zones, of the plurality of first management zones, with their respective similar neighboring large zones; storing the set of first merged management zones and the first count value in a set of management zone metrics.

BENEFIT CLAIM

This application claims the benefit under 35 U.S.C. § 120 as aContinuation of application Ser. No. 15/234,943, filed Aug. 11, 2016,the entire contents of which is hereby incorporated by reference for allpurposes as if fully set forth herein. The applicants hereby rescind anydisclaimer of claim scope in the parent applications or the prosecutionhistory thereof and advise the USPTO that the claims in this applicationmay be broader than any claim in the parent applications.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyright orrights whatsoever. © 2020 The Climate Corporation.

FIELD OF THE DISCLOSURE

The technical field of the present disclosure includes computer systemsuseful in agriculture and climatology. The disclosure is also in thetechnical field of computer systems that are programmed or configured togenerate management zones for agricultural fields based on digitalhistorical yield map data, pipelined data processing, andcomputer-implemented data recommendations for use in agriculture.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Management zones refer to contiguous regions within an agriculturalfield that have similar limiting factors influencing harvested yields ofcrops. The regions that belong to the same management zone can usuallybe managed uniformly with respect to seeding, irrigation, application offertilizers such as nitrogen, and/or harvesting.

One advantage of identifying management zones within an agriculturalfield is that information about the zones may help crop growers tocustomize their practices for each zone to thus increase theproductivity and the harvested yields of crops.

SUMMARY

The appended claims may serve as a summary of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 illustrates an example computer system that is configured toperform the functions described herein, shown in a field environmentwith other apparatus with which the system may interoperate.

FIG. 2 illustrates two views of an example logical organization of setsof instructions in main memory when an example mobile application isloaded for execution.

FIG. 3 illustrates a programmed process by which the agriculturalintelligence computer system generates one or more preconfiguredagronomic models using agronomic data provided by one or more datasources.

FIG. 4 is a block diagram that illustrates a computer system 400 uponwhich an embodiment of the invention may be implemented.

FIG. 5 depicts an example embodiment of a timeline view for data entry.

FIG. 6 depicts an example embodiment of a spreadsheet view for dataentry.

FIG. 7 depicts an example embodiment of a management zone creationpipeline.

FIG. 8 depicts a method for creating management zones for anagricultural field.

FIG. 9 depicts a method for management zones post-processing.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present disclosure. It will be apparent, however,that embodiments may be practiced without these specific details. Inother instances, well-known structures and devices are shown in blockdiagram form in order to avoid unnecessarily obscuring the presentdisclosure. Embodiments are disclosed in sections according to thefollowing outline:

-   -   1. GENERAL OVERVIEW    -   2. EXAMPLE AGRICULTURAL INTELLIGENCE COMPUTER SYSTEM        -   2.1. STRUCTURAL OVERVIEW        -   2.2. APPLICATION PROGRAM OVERVIEW        -   2.3. DATA INGEST TO THE COMPUTER SYSTEM        -   2.4. PROCESS OVERVIEW—AGRONOMIC MODEL TRAINING        -   2.5. IMPLEMENTATION EXAMPLE—HARDWARE OVERVIEW    -   3. IDENTIFYING MANAGEMENT ZONES BASED ON HISTORICAL YIELD DATA        -   3.1 MANAGEMENT ZONES CREATING PIPELINE        -   3.2 CREATING MANAGEMENT ZONES            -   3.2.1 YIELD DATA            -   3.2.2 PREPROCESSING OF RECEIVED DATA            -   3.2.3 IMPUTING MISSING YIELD DATA            -   3.2.4 EMPIRICAL CUMULATIVE DENSITY TRANSFORMATION            -   3.2.5 SPATIAL SMOOTHING            -   3.2.6 IDENTIFYING MANAGEMENT ZONES                -   3.2.6.1 K-MEANS APPROACH                -   3.2.6.2 FUZZY C-MEANS APPROACH                -   3.2.6.3 REGION MERGING APPROACH            -   3.2.7 POST PROCESSING        -   3.3 PERFORMANCE CONSIDERATIONS        -   3.4 USEFULNESS OF MANAGEMENT ZONES DELINEATION        -   3.5 EXTENSIONS

1. General Overview

In an embodiment, a process of delineating management zones within anagricultural field management zones includes determining contiguoussubregions within the agricultural field that have similar yieldlimiting factors, and thus can be uniformly managed.

In an embodiment, a process of delineating management zones within anagricultural field is implemented in a computer system that comprisescomputer memory and one or more processors configured to execute programinstructions. The process may be implemented for example, in a computerworkstation owned by a crop grower and to which the grower may providehistorical yields of crops data. The process may also be implemented ina mobile device, such as a smart phone that connects to a storage deviceor a cloud storage system in which the historical yields of crops datais stored. Furthermore, the process may be implemented in a computerserver to which the yield data is provided or to which the yield data ismade available.

A zone delineation process may include using instructions programmed ina computer system to receive yield data representing yields of cropsthat have been harvested from an agricultural field. The yield data mayinclude historical maps provided by crops growers, research partners,agricultural agencies, and other agricultural data sources. The yielddata may comprise data representing yield information collected for oneyear or multiple years.

In an embodiment, received yield data is preprocessed. Preprocessing ofthe yield data may be performed by removing yield maps that correspondto multiple crops planted in the same season in the agricultural field,removing yield maps that include yield records outside boundaries of theagricultural field, marking yield records of absolute zeros as missingvalues, removing yield records for fields that have less than two yearsof yield maps period, or removing yield maps that have more than acertain count of missing values.

A zone delineation process may also include using the instructions totransform yield data to generate transformed yield data. Transformingthe yield data may be performed by applying an empirical cumulativedensity function (ECDF) to the yield data to normalize the data to acertain range, such as a range of [0, 1]. The transformed yield data maybe comparable across different years and types of crops. For example,the ECDF may allow transforming, or normalizing, yield records for eachfield and year, regardless of the crop type and the collection time, toa range of [0, 1], so that the transformed data may be comparable witheach other.

In an embodiment, transformed yield data is used to generate smoothtransformed yield data. Smooth transformed yield data may be generatedby performing smoothing operations on the transformed yield data. Thatmay include removing outlier data from the transformed yield data,determining missing values in the transformed yield data, computingsubstitute values for the missing values, or performing a spatialsmoothing on the transformed yield data.

In an embodiment, a process of delineating management zones within anagricultural field includes determining a first count value for aplurality of management classes. A count of management classes is aparameter used to determine a count of distinctive management classes tobe used to create the management zones. Distinctive management classesinclude the areas in the agricultural field that have relativelyhomogeneous yield limiting factors, but are not restricted to bespatially contiguous.

The smooth transformed yield data and the first count value may be usedto generate a plurality of first management zones. The first managementzones may be generated by applying, to the smooth transformed yielddata, clustering approaches, such as a centroid-based clustering, orregion merging approaches.

If a plurality of first management zones includes one or more relativelysmall zones, then the small zones may be merged with their neighboringlarger zones. Merging the small management zones with their respectiveneighboring large zones results in generating a set of first mergedmanagement zones.

In an embodiment, a set of first merged management zones is used toautomatically control a computer control system of one or more ofseeding, irrigation, nitrogen application, and harvesting apparatus.

In an embodiment, a set of first merged management zones and a firstcount value are stored in a set of management metrics. The metrics maybe stored in for example, a computer memory unit, a data storage, or acloud storage system.

The process of creating management zones may be repeated for differentcounts of classes. For example, the process may be repeated for theincreased, or decreased, counts until a desired quality of the zonedelineation is achieved.

In an embodiment, a second count value for a plurality of managementclasses is determined and used to generate a plurality of secondmanagement zones. The plurality of second management zones may begenerated by applying the same approaches as those used to generate aplurality of first management zones. The approaches may includeclustering approaches, such as a centroid-based clustering, and regionmerging approaches.

If a plurality of second management zones includes one or morerelatively small zones, then the small zones may be merged with theircorresponding neighboring larger zones to generate a set of secondmerged management zones. The set of second merged management zones andthe second count value may be stored as metrics of management zones.

In an embodiment, recommendations are generated based on the metrics ofmanagement zones. The recommendations may be generated by evaluating adelineation quality of management zones stored in the metrics. Therecommendations may include information about the created managementzones and a recommended class count for the plurality of managementclasses. The recommendations may be sent to crop growers to help them todetermine for example, seeding schedules for the field.

2. Example Agricultural Intelligence Computer System

2.1 Structural Overview

FIG. 1 illustrates an example computer system that is configured toperform the functions described herein, shown in a field environmentwith other apparatus with which the system may interoperate. In oneembodiment, a user 102 owns, operates or possesses a field managercomputing device 104 in a field location or associated with a fieldlocation such as a field intended for agricultural activities or amanagement location for one or more agricultural fields. The fieldmanager computer device 104 is programmed or configured to provide fielddata 106 to an agricultural intelligence computer system 130 via one ormore networks 109.

Examples of field data 106 include (a) identification data (for example,acreage, field name, field identifiers, geographic identifiers, boundaryidentifiers, crop identifiers, and any other suitable data that may beused to identify farm land, such as a common land unit (CLU), lot andblock number, a parcel number, geographic coordinates and boundaries,Farm Serial Number (FSN), farm number, tract number, field number,section, township, and/or range), (b) harvest data (for example, croptype, crop variety, crop rotation, whether the crop is grownorganically, harvest date, Actual Production History (APH), expectedyield, yield, crop price, crop revenue, grain moisture, tillagepractice, and previous growing season information), (c) soil data (forexample, type, composition, pH, organic matter (OM), cation exchangecapacity (CEC)), (d) planting data (for example, planting date, seed(s)type, relative maturity (RM) of planted seed(s), seed population), (e)fertilizer data (for example, nutrient type (Nitrogen, Phosphorous,Potassium), application type, application date, amount, source, method),(f) pesticide data (for example, pesticide, herbicide, fungicide, othersubstance or mixture of substances intended for use as a plantregulator, defoliant, or desiccant, application date, amount, source,method), (g) irrigation data (for example, application date, amount,source, method), (h) weather data (for example, precipitation, rainfallrate, predicted rainfall, water runoff rate region, temperature, wind,forecast, pressure, visibility, clouds, heat index, dew point, humidity,snow depth, air quality, sunrise, sunset), (i) imagery data (forexample, imagery and light spectrum information from an agriculturalapparatus sensor, camera, computer, smartphone, tablet, unmanned aerialvehicle, planes or satellite), (j) scouting observations (photos,videos, free form notes, voice recordings, voice transcriptions, weatherconditions (temperature, precipitation (current and over time), soilmoisture, crop growth stage, wind velocity, relative humidity, dewpoint, black layer)), and (k) soil, seed, crop phenology, pest anddisease reporting, and predictions sources and databases.

A data server computer 108 is communicatively coupled to agriculturalintelligence computer system 130 and is programmed or configured to sendexternal data 110 to agricultural intelligence computer system 130 viathe network(s) 109. The external data server computer 108 may be ownedor operated by the same legal person or entity as the agriculturalintelligence computer system 130, or by a different person or entitysuch as a government agency, non-governmental organization (NGO), and/ora private data service provider. Examples of external data includeweather data, imagery data, soil data, or statistical data relating tocrop yields, among others. External data 110 may consist of the sametype of information as field data 106. In some embodiments, the externaldata 110 is provided by an external data server 108 owned by the sameentity that owns and/or operates the agricultural intelligence computersystem 130. For example, the agricultural intelligence computer system130 may include a data server focused exclusively on a type of data thatmight otherwise be obtained from third party sources, such as weatherdata. In some embodiments, an external data server 108 may actually beincorporated within the system 130.

An agricultural apparatus 111 may have one or more remote sensors 112fixed thereon, which sensors are communicatively coupled either directlyor indirectly via agricultural apparatus 111 to the agriculturalintelligence computer system 130 and are programmed or configured tosend sensor data to agricultural intelligence computer system 130.Examples of agricultural apparatus 111 include tractors, combines,harvesters, planters, trucks, fertilizer equipment, unmanned aerialvehicles, and any other item of physical machinery or hardware,typically mobile machinery, and which may be used in tasks associatedwith agriculture. In some embodiments, a single unit of apparatus 111may comprise a plurality of sensors 112 that are coupled locally in anetwork on the apparatus; controller area network (CAN) is example ofsuch a network that can be installed in combines or harvesters.Application controller 114 is communicatively coupled to agriculturalintelligence computer system 130 via the network(s) 109 and isprogrammed or configured to receive one or more scripts to control anoperating parameter of an agricultural vehicle or implement from theagricultural intelligence computer system 130. For instance, acontroller area network (CAN) bus interface may be used to enablecommunications from the agricultural intelligence computer system 130 tothe agricultural apparatus 111, such as how the CLIMATE FIELDVIEW DRIVE,available from The Climate Corporation, San Francisco, Calif., is used.Sensor data may consist of the same type of information as field data106. In some embodiments, remote sensors 112 may not be fixed to anagricultural apparatus 111 but may be remotely located in the field andmay communicate with network 109.

The apparatus 111 may comprise a cab computer 115 that is programmedwith a cab application, which may comprise a version or variant of themobile application for device 104 that is further described in othersections herein. In an embodiment, cab computer 115 comprises a compactcomputer, often a tablet-sized computer or smartphone, with a graphicalscreen display, such as a color display, that is mounted within anoperator's cab of the apparatus 111. Cab computer 115 may implement someor all of the operations and functions that are described further hereinfor the mobile computer device 104.

The network(s) 109 broadly represent any combination of one or more datacommunication networks including local area networks, wide areanetworks, internetworks or internets, using any of wireline or wirelesslinks, including terrestrial or satellite links. The network(s) may beimplemented by any medium or mechanism that provides for the exchange ofdata between the various elements of FIG. 1. The various elements ofFIG. 1 may also have direct (wired or wireless) communications links.The sensors 112, controller 114, external data server computer 108, andother elements of the system each comprise an interface compatible withthe network(s) 109 and are programmed or configured to use standardizedprotocols for communication across the networks such as TCP/IP,Bluetooth, CAN protocol and higher-layer protocols such as HTTP, TLS,and the like.

Agricultural intelligence computer system 130 is programmed orconfigured to receive field data 106 from field manager computing device104, external data 110 from external data server computer 108, andsensor data from remote sensor 112. Agricultural intelligence computersystem 130 may be further configured to host, use or execute one or morecomputer programs, other software elements, digitally programmed logicsuch as FPGAs or ASICs, or any combination thereof to performtranslation and storage of data values, construction of digital modelsof one or more crops on one or more fields, generation ofrecommendations and notifications, and generation and sending of scriptsto application controller 114, in the manner described further in othersections of this disclosure.

In an embodiment, agricultural intelligence computer system 130 isprogrammed with or comprises a communication layer 132, presentationlayer 134, data management layer 140, hardware/virtualization layer 150,and model and field data repository 160. “Layer,” in this context,refers to any combination of electronic digital interface circuits,microcontrollers, firmware such as drivers, and/or computer programs orother software elements.

Communication layer 132 may be programmed or configured to performinput/output interfacing functions including sending requests to fieldmanager computing device 104, external data server computer 108, andremote sensor 112 for field data, external data, and sensor datarespectively. Communication layer 132 may be programmed or configured tosend the received data to model and field data repository 160 to bestored as field data 106.

In an embodiment, agricultural intelligence computer system 130 isprogrammed with or comprises code instructions 180. For example, codeinstructions 180 may include data receiving instructions 182 which areprogrammed for receiving, over network(s) 109, electronic digital datacomprising yield data. Code instructions 180 may also include dataprocessing instructions 183 which are programmed for preprocessing ofthe received yield data; data smoothing instructions 184 which areprogrammed for smoothing the preprocessed yield data; data delineatinginstructions 187 which are programmed for delineating management zones;post-processing instructions 186 which are programmed forpost-processing of the delineated management zones; data comparisoninstructions 185 which are programmed for comparing the post-processedmanagement zones; and other detection instructions 188.

Presentation layer 134 may be programmed or configured to generate agraphical user interface (GUI) to be displayed on field managercomputing device 104, cab computer 115 or other computers that arecoupled to the system 130 through the network 109. The GUI may comprisecontrols for inputting data to be sent to agricultural intelligencecomputer system 130, generating requests for models and/orrecommendations, and/or displaying recommendations, notifications,models, and other field data.

Data management layer 140 may be programmed or configured to manage readoperations and write operations involving the repository 160 and otherfunctional elements of the system, including queries and result setscommunicated between the functional elements of the system and therepository. Examples of data management layer 140 include JDBC, SQLserver interface code, and/or HADOOP interface code, among others.Repository 160 may comprise a database. As used herein, the term“database” may refer to either a body of data, a relational databasemanagement system (RDBMS), or to both. As used herein, a database maycomprise any collection of data including hierarchical databases,relational databases, flat file databases, object-relational databases,object oriented databases, and any other structured collection ofrecords or data that is stored in a computer system. Examples of RDBMS'sinclude, but are not limited to including, ORACLE®, MYSQL, IBM® DB2,MICROSOFT® SQL SERVER, SYBASE®, and POSTGRESQL databases. However, anydatabase may be used that enables the systems and methods describedherein.

When field data 106 is not provided directly to the agriculturalintelligence computer system via one or more agricultural machines oragricultural machine devices that interacts with the agriculturalintelligence computer system, the user may be prompted via one or moreuser interfaces on the user device (served by the agriculturalintelligence computer system) to input such information. In an exampleembodiment, the user may specify identification data by accessing a mapon the user device (served by the agricultural intelligence computersystem) and selecting specific CLUs that have been graphically shown onthe map. In an alternative embodiment, the user 102 may specifyidentification data by accessing a map on the user device (served by theagricultural intelligence computer system 130) and drawing boundaries ofthe field over the map. Such CLU selection or map drawings representgeographic identifiers. In alternative embodiments, the user may specifyidentification data by accessing field identification data (provided asshape files or in a similar format) from the U. S. Department ofAgriculture Farm Service Agency or other source via the user device andproviding such field identification data to the agriculturalintelligence computer system.

In an example embodiment, the agricultural intelligence computer system130 is programmed to generate and cause displaying a graphical userinterface comprising a data manager for data input. After one or morefields have been identified using the methods described above, the datamanager may provide one or more graphical user interface widgets whichwhen selected can identify changes to the field, soil, crops, tillage,or nutrient practices. The data manager may include a timeline view, aspreadsheet view, and/or one or more editable programs.

FIG. 5 depicts an example embodiment of a timeline view for data entry.Using the display depicted in FIG. 5, a user computer can input aselection of a particular field and a particular date for the additionof event. Events depicted at the top of the timeline may includeNitrogen, Planting, Practices, and Soil. To add a nitrogen applicationevent, a user computer may provide input to select the nitrogen tab. Theuser computer may then select a location on the timeline for aparticular field in order to indicate an application of nitrogen on theselected field. In response to receiving a selection of a location onthe timeline for a particular field, the data manager may display a dataentry overlay, allowing the user computer to input data pertaining tonitrogen applications, planting procedures, soil application, tillageprocedures, irrigation practices, or other information relating to theparticular field. For example, if a user computer selects a portion ofthe timeline and indicates an application of nitrogen, then the dataentry overlay may include fields for inputting an amount of nitrogenapplied, a date of application, a type of fertilizer used, and any otherinformation related to the application of nitrogen.

In an embodiment, the data manager provides an interface for creatingone or more programs. “Program,” in this context, refers to a set ofdata pertaining to nitrogen applications, planting procedures, soilapplication, tillage procedures, irrigation practices, or otherinformation that may be related to one or more fields, and that can bestored in digital data storage for reuse as a set in other operations.After a program has been created, it may be conceptually applied to oneor more fields and references to the program may be stored in digitalstorage in association with data identifying the fields. Thus, insteadof manually entering identical data relating to the same nitrogenapplications for multiple different fields, a user computer may create aprogram that indicates a particular application of nitrogen and thenapply the program to multiple different fields. For example, in thetimeline view of FIG. 5, the top two timelines have the “Fall applied”program selected, which includes an application of 150 lbs N/ac in earlyApril. The data manager may provide an interface for editing a program.In an embodiment, when a particular program is edited, each field thathas selected the particular program is edited. For example, in FIG. 5,if the “Fall applied” program is edited to reduce the application ofnitrogen to 130 lbs N/ac, the top two fields may be updated with areduced application of nitrogen based on the edited program.

In an embodiment, in response to receiving edits to a field that has aprogram selected, the data manager removes the correspondence of thefield to the selected program. For example, if a nitrogen application isadded to the top field in FIG. 5, the interface may update to indicatethat the “Fall applied” program is no longer being applied to the topfield. While the nitrogen application in early April may remain, updatesto the “Fall applied” program would not alter the April application ofnitrogen.

FIG. 6 depicts an example embodiment of a spreadsheet view for dataentry. Using the display depicted in FIG. 6, a user can create and editinformation for one or more fields. The data manager may includespreadsheets for inputting information with respect to Nitrogen,Planting, Practices, and Soil as depicted in FIG. 6. To edit aparticular entry, a user computer may select the particular entry in thespreadsheet and update the values. For example, FIG. 6 depicts anin-progress update to a target yield value for the second field.Additionally, a user computer may select one or more fields in order toapply one or more programs. In response to receiving a selection of aprogram for a particular field, the data manager may automaticallycomplete the entries for the particular field based on the selectedprogram. As with the timeline view, the data manager may update theentries for each field associated with a particular program in responseto receiving an update to the program. Additionally, the data managermay remove the correspondence of the selected program to the field inresponse to receiving an edit to one of the entries for the field.

In an embodiment, model and field data is stored in model and field datarepository 160. Model data comprises data models created for one or morefields. For example, a crop model may include a digitally constructedmodel of the development of a crop on the one or more fields. “Model,”in this context, refers to an electronic digitally stored set ofexecutable instructions and data values, associated with one another,which are capable of receiving and responding to a programmatic or otherdigital call, invocation, or request for resolution based upon specifiedinput values, to yield one or more stored output values that can serveas the basis of computer-implemented recommendations, output datadisplays, or machine control, among other things. Persons of skill inthe field find it convenient to express models using mathematicalequations, but that form of expression does not confine the modelsdisclosed herein to abstract concepts; instead, each model herein has apractical application in a computer in the form of stored executableinstructions and data that implement the model using the computer. Themodel data may include a model of past events on the one or more fields,a model of the current status of the one or more fields, and/or a modelof predicted events on the one or more fields. Model and field data maybe stored in data structures in memory, rows in a database table, inflat files or spreadsheets, or other forms of stored digital data.

Hardware/virtualization layer 150 comprises one or more centralprocessing units (CPUs), memory controllers, and other devices,components, or elements of a computer system such as volatile ornon-volatile memory, non-volatile storage such as disk, and I/O devicesor interfaces as illustrated and described, for example, in connectionwith FIG. 4. The layer 150 also may comprise programmed instructionsthat are configured to support virtualization, containerization, orother technologies.

For purposes of illustrating a clear example, FIG. 1 shows a limitednumber of instances of certain functional elements. However, in otherembodiments, there may be any number of such elements. For example,embodiments may use thousands or millions of different mobile computingdevices 104 associated with different users. Further, the system 130and/or external data server computer 108 may be implemented using two ormore processors, cores, clusters, or instances of physical machines orvirtual machines, configured in a discrete location or co-located withother elements in a datacenter, shared computing facility or cloudcomputing facility.

2.2. Application Program Overview

In an embodiment, the implementation of the functions described hereinusing one or more computer programs or other software elements that areloaded into and executed using one or more general-purpose computerswill cause the general-purpose computers to be configured as aparticular machine or as a computer that is specially adapted to performthe functions described herein. Further, each of the flow diagrams thatare described further herein may serve, alone or in combination with thedescriptions of processes and functions in prose herein, as algorithms,plans or directions that may be used to program a computer or logic toimplement the functions that are described. In other words, all theprose text herein, and all the drawing figures, together are intended toprovide disclosure of algorithms, plans or directions that aresufficient to permit a skilled person to program a computer to performthe functions that are described herein, in combination with the skilland knowledge of such a person given the level of skill that isappropriate for inventions and disclosures of this type.

In an embodiment, user 102 interacts with agricultural intelligencecomputer system 130 using field manager computing device 104 configuredwith an operating system and one or more application programs or apps;the field manager computing device 104 also may interoperate with theagricultural intelligence computer system independently andautomatically under program control or logical control and direct userinteraction is not always required. Field manager computing device 104broadly represents one or more of a smart phone, PDA, tablet computingdevice, laptop computer, desktop computer, workstation, or any othercomputing device capable of transmitting and receiving information andperforming the functions described herein. Field manager computingdevice 104 may communicate via a network using a mobile applicationstored on field manager computing device 104, and in some embodiments,the device may be coupled using a cable 113 or connector to the sensor112 and/or controller 114. A particular user 102 may own, operate orpossess and use, in connection with system 130, more than one fieldmanager computing device 104 at a time.

The mobile application may provide client-side functionality, via thenetwork to one or more mobile computing devices. In an exampleembodiment, field manager computing device 104 may access the mobileapplication via a web browser or a local client application or app.Field manager computing device 104 may transmit data to, and receivedata from, one or more front-end servers, using web-based protocols orformats such as HTTP, XML and/or JSON, or app-specific protocols. In anexample embodiment, the data may take the form of requests and userinformation input, such as field data, into the mobile computing device.In some embodiments, the mobile application interacts with locationtracking hardware and software on field manager computing device 104which determines the location of field manager computing device 104using standard tracking techniques such as multilateration of radiosignals, the global positioning system (GPS), WiFi positioning systems,or other methods of mobile positioning. In some cases, location data orother data associated with the device 104, user 102, and/or useraccount(s) may be obtained by queries to an operating system of thedevice or by requesting an app on the device to obtain data from theoperating system.

In an embodiment, field manager computing device 104 sends field data106 to agricultural intelligence computer system 130 comprising orincluding, but not limited to, data values representing one or more of:a geographical location of the one or more fields, tillage informationfor the one or more fields, crops planted in the one or more fields, andsoil data extracted from the one or more fields. Field manager computingdevice 104 may send field data 106 in response to user input from user102 specifying the data values for the one or more fields. Additionally,field manager computing device 104 may automatically send field data 106when one or more of the data values becomes available to field managercomputing device 104. For example, field manager computing device 104may be communicatively coupled to remote sensor 112 and/or applicationcontroller 114. In response to receiving data indicating thatapplication controller 114 released water onto the one or more fields,field manager computing device 104 may send field data 106 toagricultural intelligence computer system 130 indicating that water wasreleased on the one or more fields. Field data 106 identified in thisdisclosure may be input and communicated using electronic digital datathat is communicated between computing devices using parameterized URLsover HTTP, or another suitable communication or messaging protocol.

A commercial example of the mobile application is CLIMATE FIELDVIEW,commercially available from The Climate Corporation, San Francisco,Calif. The CLIMATE FIELDVIEW application, or other applications, may bemodified, extended, or adapted to include features, functions, andprogramming that have not been disclosed earlier than the filing date ofthis disclosure. In one embodiment, the mobile application comprises anintegrated software platform that allows a grower to make fact-baseddecisions for their operation because it combines historical data aboutthe grower's fields with any other data that the grower wishes tocompare. The combinations and comparisons may be performed in real timeand are based upon scientific models that provide potential scenarios topermit the grower to make better, more informed decisions.

FIG. 2 illustrates two views of an example logical organization of setsof instructions in main memory when an example mobile application isloaded for execution. In FIG. 2, each named element represents a regionof one or more pages of RAM or other main memory, or one or more blocksof disk storage or other non-volatile storage, and the programmedinstructions within those regions. In one embodiment, in view (a), amobile computer application 200 comprises account-fields-dataingestion-sharing instructions 202, overview and alert instructions 204,digital map book instructions 206, seeds and planting instructions 208,nitrogen instructions 210, weather instructions 212, field healthinstructions 214, and performance instructions 216.

In one embodiment, a mobile computer application 200 comprisesaccount-fields-data ingestion-sharing instructions 202 which areprogrammed to receive, translate, and ingest field data from third partysystems via manual upload or APIs. Data types may include fieldboundaries, yield maps, as-planted maps, soil test results, as-appliedmaps, and/or management zones, among others. Data formats may includeshape files, native data formats of third parties, and/or farmmanagement information system (FMIS) exports, among others. Receivingdata may occur via manual upload, e-mail with attachment, external APIsthat push data to the mobile application, or instructions that call APIsof external systems to pull data into the mobile application. In oneembodiment, mobile computer application 200 comprises a data inbox. Inresponse to receiving a selection of the data inbox, the mobile computerapplication 200 may display a graphical user interface for manuallyuploading data files and importing uploaded files to a data manager.

In one embodiment, digital map book instructions 206 comprise field mapdata layers stored in device memory and are programmed with datavisualization tools and geospatial field notes. This provides growerswith convenient information close at hand for reference, logging andvisual insights into field performance. In one embodiment, overview andalert instructions 204 are programmed to provide an operation-wide viewof what is important to the grower, and timely recommendations to takeaction or focus on particular issues. This permits the grower to focustime on what needs attention, to save time and preserve yield throughoutthe season. In one embodiment, seeds and planting instructions 208 areprogrammed to provide tools for seed selection, hybrid placement, andscript creation, including variable rate (VR) script creation, basedupon scientific models and empirical data. This enables growers tomaximize yield or return on investment through optimized seed purchase,placement and population.

In one embodiment, script generation instructions 205 are programmed toprovide an interface for generating scripts, including variable rate(VR) fertility scripts. The interface enables growers to create scriptsfor field implements, such as nutrient applications, planting, andirrigation. For example, a planting script interface may comprise toolsfor identifying a type of seed for planting. Upon receiving a selectionof the seed type, mobile computer application 200 may display one ormore fields broken into management zones, such as the field map datalayers created as part of digital map book instructions 206. In oneembodiment, the management zones comprise soil zones along with a panelidentifying each soil zone and a soil name, texture, drainage for eachzone, or other field data. Mobile computer application 200 may alsodisplay tools for editing or creating such, such as graphical tools fordrawing management zones, such as soil zones, over a map of one or morefields. Planting procedures may be applied to all management zones ordifferent planting procedures may be applied to different subsets ofmanagement zones. When a script is created, mobile computer application200 may make the script available for download in a format readable byan application controller, such as an archived or compressed format.Additionally and/or alternatively, a script may be sent directly to cabcomputer 115 from mobile computer application 200 and/or uploaded to oneor more data servers and stored for further use. In one embodiment,nitrogen instructions 210 are programmed to provide tools to informnitrogen decisions by visualizing the availability of nitrogen to crops.This enables growers to maximize yield or return on investment throughoptimized nitrogen application during the season. Example programmedfunctions include displaying images such as SSURGO images to enabledrawing of application zones and/or images generated from subfield soildata, such as data obtained from sensors, at a high spatial resolution(as fine as 10 meters or smaller because of their proximity to thesoil); upload of existing grower-defined zones; providing an applicationgraph and/or a map to enable tuning application(s) of nitrogen acrossmultiple zones; output of scripts to drive machinery; tools for massdata entry and adjustment; and/or maps for data visualization, amongothers. “Mass data entry,” in this context, may mean entering data onceand then applying the same data to multiple fields that have beendefined in the system; example data may include nitrogen applicationdata that is the same for many fields of the same grower, but such massdata entry applies to the entry of any type of field data into themobile computer application 200. For example, nitrogen instructions 210may be programmed to accept definitions of nitrogen planting andpractices programs and to accept user input specifying to apply thoseprograms across multiple fields. “Nitrogen planting programs,” in thiscontext, refers to a stored, named set of data that associates: a name,color code or other identifier, one or more dates of application, typesof material or product for each of the dates and amounts, method ofapplication or incorporation such as injected or knifed in, and/oramounts or rates of application for each of the dates, crop or hybridthat is the subject of the application, among others. “Nitrogenpractices programs,” in this context, refers to a stored, named set ofdata that associates: a practices name; a previous crop; a tillagesystem; a date of primarily tillage; one or more previous tillagesystems that were used; one or more indicators of application type, suchas manure, that were used. Nitrogen instructions 210 also may beprogrammed to generate and cause displaying a nitrogen graph, whichindicates projections of plant use of the specified nitrogen and whethera surplus or shortfall is predicted; in some embodiments, differentcolor indicators may signal a magnitude of surplus or magnitude ofshortfall. In one embodiment, a nitrogen graph comprises a graphicaldisplay in a computer display device comprising a plurality of rows,each row associated with and identifying a field; data specifying whatcrop is planted in the field, the field size, the field location, and agraphic representation of the field perimeter; in each row, a timelineby month with graphic indicators specifying each nitrogen applicationand amount at points correlated to month names; and numeric and/orcolored indicators of surplus or shortfall, in which color indicatesmagnitude.

In one embodiment, the nitrogen graph may include one or more user inputfeatures, such as dials or slider bars, to dynamically change thenitrogen planting and practices programs so that a user may optimize hisnitrogen graph. The user may then use his optimized nitrogen graph andthe related nitrogen planting and practices programs to implement one ormore scripts, including variable rate (VR) fertility scripts. Nitrogeninstructions 210 also may be programmed to generate and cause displayinga nitrogen map, which indicates projections of plant use of thespecified nitrogen and whether a surplus or shortfall is predicted; insome embodiments, different color indicators may signal a magnitude ofsurplus or magnitude of shortfall. The nitrogen map may displayprojections of plant use of the specified nitrogen and whether a surplusor shortfall is predicted for different times in the past and the future(such as daily, weekly, monthly or yearly) using numeric and/or coloredindicators of surplus or shortfall, in which color indicates magnitude.In one embodiment, the nitrogen map may include one or more user inputfeatures, such as dials or slider bars, to dynamically change thenitrogen planting and practices programs so that a user may optimize hisnitrogen map, such as to obtain a preferred amount of surplus toshortfall. The user may then use his optimized nitrogen map and therelated nitrogen planting and practices programs to implement one ormore scripts, including variable rate (VR) fertility scripts. In otherembodiments, similar instructions to the nitrogen instructions 210 couldbe used for application of other nutrients (such as phosphorus andpotassium) application of pesticide, and irrigation programs.

In one embodiment, weather instructions 212 are programmed to providefield-specific recent weather data and forecasted weather information.This enables growers to save time and have an efficient integrateddisplay with respect to daily operational decisions.

In one embodiment, field health instructions 214 are programmed toprovide timely remote sensing images highlighting in-season cropvariation and potential concerns. Example programmed functions includecloud checking, to identify possible clouds or cloud shadows;determining nitrogen indices based on field images; graphicalvisualization of scouting layers, including, for example, those relatedto field health, and viewing and/or sharing of scouting notes; and/ordownloading satellite images from multiple sources and prioritizing theimages for the grower, among others.

In one embodiment, performance instructions 216 are programmed toprovide reports, analysis, and insight tools using on-farm data forevaluation, insights and decisions. This enables the grower to seekimproved outcomes for the next year through fact-based conclusions aboutwhy return on investment was at prior levels, and insight intoyield-limiting factors. The performance instructions 216 may beprogrammed to communicate via the network(s) 109 to back-end analyticsprograms executed at agricultural intelligence computer system 130and/or external data server computer 108 and configured to analyzemetrics such as yield, hybrid, population, SSURGO, soil tests, orelevation, among others. Programmed reports and analysis may includeyield variability analysis, benchmarking of yield and other metricsagainst other growers based on anonymized data collected from manygrowers, or data for seeds and planting, among others.

Applications having instructions configured in this way may beimplemented for different computing device platforms while retaining thesame general user interface appearance. For example, the mobileapplication may be programmed for execution on tablets, smartphones, orserver computers that are accessed using browsers at client computers.Further, the mobile application as configured for tablet computers orsmartphones may provide a full app experience or a cab app experiencethat is suitable for the display and processing capabilities of cabcomputer 115. For example, referring now to view (b) of FIG. 2, in oneembodiment a cab computer application 220 may comprise maps-cabinstructions 222, remote view instructions 224, data collect andtransfer instructions 226, machine alerts instructions 228, scripttransfer instructions 230, and scouting-cab instructions 232. The codebase for the instructions of view (b) may be the same as for view (a)and executables implementing the code may be programmed to detect thetype of platform on which they are executing and to expose, through agraphical user interface, only those functions that are appropriate to acab platform or full platform. This approach enables the system torecognize the distinctly different user experience that is appropriatefor an in-cab environment and the different technology environment ofthe cab. The maps-cab instructions 222 may be programmed to provide mapviews of fields, farms or regions that are useful in directing machineoperation. The remote view instructions 224 may be programmed to turnon, manage, and provide views of machine activity in real-time or nearreal-time to other computing devices connected to the system 130 viawireless networks, wired connectors or adapters, and the like. The datacollect and transfer instructions 226 may be programmed to turn on,manage, and provide transfer of data collected at machine sensors andcontrollers to the system 130 via wireless networks, wired connectors oradapters, and the like. The machine alerts instructions 228 may beprogrammed to detect issues with operations of the machine or tools thatare associated with the cab and generate operator alerts. The scripttransfer instructions 230 may be configured to transfer in scripts ofinstructions that are configured to direct machine operations or thecollection of data. The scouting-cab instructions 230 may be programmedto display location-based alerts and information received from thesystem 130 based on the location of the agricultural apparatus 111 orsensors 112 in the field and ingest, manage, and provide transfer oflocation-based scouting observations to the system 130 based on thelocation of the agricultural apparatus 111 or sensors 112 in the field.

2.3. Data Ingest to the Computer System

In an embodiment, external data server computer 108 stores external data110, including soil data representing soil composition for the one ormore fields and weather data representing temperature and precipitationon the one or more fields. The weather data may include past and presentweather data as well as forecasts for future weather data. In anembodiment, external data server computer 108 comprises a plurality ofservers hosted by different entities. For example, a first server maycontain soil composition data while a second server may include weatherdata. Additionally, soil composition data may be stored in multipleservers. For example, one server may store data representing percentageof sand, silt, and clay in the soil while a second server may store datarepresenting percentage of organic matter (OM) in the soil.

In an embodiment, remote sensor 112 comprises one or more sensors thatare programmed or configured to produce one or more observations. Remotesensor 112 may be aerial sensors, such as satellites, vehicle sensors,planting equipment sensors, tillage sensors, fertilizer or insecticideapplication sensors, harvester sensors, and any other implement capableof receiving data from the one or more fields. In an embodiment,application controller 114 is programmed or configured to receiveinstructions from agricultural intelligence computer system 130.Application controller 114 may also be programmed or configured tocontrol an operating parameter of an agricultural vehicle or implement.For example, an application controller may be programmed or configuredto control an operating parameter of a vehicle, such as a tractor,planting equipment, tillage equipment, fertilizer or insecticideequipment, harvester equipment, or other farm implements such as a watervalve. Other embodiments may use any combination of sensors andcontrollers, of which the following are merely selected examples.

The system 130 may obtain or ingest data under user 102 control, on amass basis from a large number of growers who have contributed data to ashared database system. This form of obtaining data may be termed“manual data ingest” as one or more user-controlled computer operationsare requested or triggered to obtain data for use by the system 130. Asan example, the CLIMATE FIELDVIEW application, commercially availablefrom The Climate Corporation, San Francisco, Calif., may be operated toexport data to system 130 for storing in the repository 160.

For example, seed monitor systems can both control planter apparatuscomponents and obtain planting data, including signals from seed sensorsvia a signal harness that comprises a CAN backbone and point-to-pointconnections for registration and/or diagnostics. Seed monitor systemscan be programmed or configured to display seed spacing, population andother information to the user via the cab computer 115 or other deviceswithin the system 130. Examples are disclosed in U.S. Pat. No. 8,738,243and US Pat. Pub. 20150094916, and the present disclosure assumesknowledge of those other patent disclosures.

Likewise, yield monitor systems may contain yield sensors for harvesterapparatus that send yield measurement data to the cab computer 115 orother devices within the system 130. Yield monitor systems may utilizeone or more remote sensors 112 to obtain grain moisture measurements ina combine or other harvester and transmit these measurements to the uservia the cab computer 115 or other devices within the system 130.

In an embodiment, examples of sensors 112 that may be used with anymoving vehicle or apparatus of the type described elsewhere hereininclude kinematic sensors and position sensors. Kinematic sensors maycomprise any of speed sensors such as radar or wheel speed sensors,accelerometers, or gyros. Position sensors may comprise GPS receivers ortransceivers, or WiFi-based position or mapping apps that are programmedto determine location based upon nearby WiFi hotspots, among others.

In an embodiment, examples of sensors 112 that may be used with tractorsor other moving vehicles include engine speed sensors, fuel consumptionsensors, area counters or distance counters that interact with GPS orradar signals, PTO (power take-off) speed sensors, tractor hydraulicssensors configured to detect hydraulics parameters such as pressure orflow, and/or and hydraulic pump speed, wheel speed sensors or wheelslippage sensors. In an embodiment, examples of controllers 114 that maybe used with tractors include hydraulic directional controllers,pressure controllers, and/or flow controllers; hydraulic pump speedcontrollers; speed controllers or governors; hitch position controllers;or wheel position controllers provide automatic steering.

In an embodiment, examples of sensors 112 that may be used with seedplanting equipment such as planters, drills, or air seeders include seedsensors, which may be optical, electromagnetic, or impact sensors;downforce sensors such as load pins, load cells, pressure sensors; soilproperty sensors such as reflectivity sensors, moisture sensors,electrical conductivity sensors, optical residue sensors, or temperaturesensors; component operating criteria sensors such as planting depthsensors, downforce cylinder pressure sensors, seed disc speed sensors,seed drive motor encoders, seed conveyor system speed sensors, or vacuumlevel sensors; or pesticide application sensors such as optical or otherelectromagnetic sensors, or impact sensors. In an embodiment, examplesof controllers 114 that may be used with such seed planting equipmentinclude: toolbar fold controllers, such as controllers for valvesassociated with hydraulic cylinders; downforce controllers, such ascontrollers for valves associated with pneumatic cylinders, airbags, orhydraulic cylinders, and programmed for applying downforce to individualrow units or an entire planter frame; planting depth controllers, suchas linear actuators; metering controllers, such as electric seed meterdrive motors, hydraulic seed meter drive motors, or swath controlclutches; hybrid selection controllers, such as seed meter drive motors,or other actuators programmed for selectively allowing or preventingseed or an air-seed mixture from delivering seed to or from seed metersor central bulk hoppers; metering controllers, such as electric seedmeter drive motors, or hydraulic seed meter drive motors; seed conveyorsystem controllers, such as controllers for a belt seed deliveryconveyor motor; marker controllers, such as a controller for a pneumaticor hydraulic actuator; or pesticide application rate controllers, suchas metering drive controllers, orifice size or position controllers.

In an embodiment, examples of sensors 112 that may be used with tillageequipment include position sensors for tools such as shanks or discs;tool position sensors for such tools that are configured to detectdepth, gang angle, or lateral spacing; downforce sensors; or draft forcesensors. In an embodiment, examples of controllers 114 that may be usedwith tillage equipment include downforce controllers or tool positioncontrollers, such as controllers configured to control tool depth, gangangle, or lateral spacing.

In an embodiment, examples of sensors 112 that may be used in relationto apparatus for applying fertilizer, insecticide, fungicide and thelike, such as on-planter starter fertilizer systems, subsoil fertilizerapplicators, or fertilizer sprayers, include: fluid system criteriasensors, such as flow sensors or pressure sensors; sensors indicatingwhich spray head valves or fluid line valves are open; sensorsassociated with tanks, such as fill level sensors; sectional orsystem-wide supply line sensors, or row-specific supply line sensors; orkinematic sensors such as accelerometers disposed on sprayer booms. Inan embodiment, examples of controllers 114 that may be used with suchapparatus include pump speed controllers; valve controllers that areprogrammed to control pressure, flow, direction, PWM and the like; orposition actuators, such as for boom height, subsoiler depth, or boomposition.

In an embodiment, examples of sensors 112 that may be used withharvesters include yield monitors, such as impact plate strain gauges orposition sensors, capacitive flow sensors, load sensors, weight sensors,or torque sensors associated with elevators or augers, or optical orother electromagnetic grain height sensors; grain moisture sensors, suchas capacitive sensors; grain loss sensors, including impact, optical, orcapacitive sensors; header operating criteria sensors such as headerheight, header type, deck plate gap, feeder speed, and reel speedsensors; separator operating criteria sensors, such as concaveclearance, rotor speed, shoe clearance, or chaffer clearance sensors;auger sensors for position, operation, or speed; or engine speedsensors. In an embodiment, examples of controllers 114 that may be usedwith harvesters include header operating criteria controllers forelements such as header height, header type, deck plate gap, feederspeed, or reel speed; separator operating criteria controllers forfeatures such as concave clearance, rotor speed, shoe clearance, orchaffer clearance; or controllers for auger position, operation, orspeed.

In an embodiment, examples of sensors 112 that may be used with graincarts include weight sensors, or sensors for auger position, operation,or speed. In an embodiment, examples of controllers 114 that may be usedwith grain carts include controllers for auger position, operation, orspeed.

In an embodiment, examples of sensors 112 and controllers 114 may beinstalled in unmanned aerial vehicle (UAV) apparatus or “drones.” Suchsensors may include cameras with detectors effective for any range ofthe electromagnetic spectrum including visible light, infrared,ultraviolet, near-infrared (NIR), and the like; accelerometers;altimeters; temperature sensors; humidity sensors; pitot tube sensors orother airspeed or wind velocity sensors; battery life sensors; or radaremitters and reflected radar energy detection apparatus. Suchcontrollers may include guidance or motor control apparatus, controlsurface controllers, camera controllers, or controllers programmed toturn on, operate, obtain data from, manage and configure any of theforegoing sensors. Examples are disclosed in U.S. patent applicationSer. No. 14/831,165 and the present disclosure assumes knowledge of thatother patent disclosure.

In an embodiment, sensors 112 and controllers 114 may be affixed to soilsampling and measurement apparatus that is configured or programmed tosample soil and perform soil chemistry tests, soil moisture tests, andother tests pertaining to soil. For example, the apparatus disclosed inU.S. Pat. Nos. 8,767,194 and 8,712,148 may be used, and the presentdisclosure assumes knowledge of those patent disclosures.

In another embodiment, sensors 112 and controllers 114 may compriseweather devices for monitoring weather conditions of fields. Forexample, the apparatus disclosed in International Pat. Application No.PCT/US2016/029609 may be used, and the present disclosure assumesknowledge of those patent disclosures.

2.4 Process Overview-Agronomic Model Training

In an embodiment, the agricultural intelligence computer system 130 isprogrammed or configured to create an agronomic model. In this context,an agronomic model is a data structure in memory of the agriculturalintelligence computer system 130 that comprises field data 106, such asidentification data and harvest data for one or more fields. Theagronomic model may also comprise calculated agronomic properties whichdescribe either conditions which may affect the growth of one or morecrops on a field, or properties of the one or more crops, or both.Additionally, an agronomic model may comprise recommendations based onagronomic factors such as crop recommendations, irrigationrecommendations, planting recommendations, and harvestingrecommendations. The agronomic factors may also be used to estimate oneor more crop related results, such as agronomic yield. The agronomicyield of a crop is an estimate of quantity of the crop that is produced,or in some examples the revenue or profit obtained from the producedcrop.

In an embodiment, the agricultural intelligence computer system 130 mayuse a preconfigured agronomic model to calculate agronomic propertiesrelated to currently received location and crop information for one ormore fields. The preconfigured agronomic model is based upon previouslyprocessed field data, including but not limited to, identification data,harvest data, fertilizer data, and weather data. The preconfiguredagronomic model may have been cross validated to ensure accuracy of themodel. Cross validation may include comparison to ground truthing thatcompares predicted results with actual results on a field, such as acomparison of precipitation estimate with a rain gauge or sensorproviding weather data at the same or nearby location or an estimate ofnitrogen content with a soil sample measurement.

FIG. 3 illustrates a programmed process by which the agriculturalintelligence computer system generates one or more preconfiguredagronomic models using field data provided by one or more data sources.FIG. 3 may serve as an algorithm or instructions for programming thefunctional elements of the agricultural intelligence computer system 130to perform the operations that are now described.

At block 305, the agricultural intelligence computer system 130 isconfigured or programmed to implement agronomic data preprocessing offield data received from one or more data sources. The field datareceived from one or more data sources may be preprocessed for thepurpose of removing noise and distorting effects within the agronomicdata including measured outliers that would bias received field datavalues. Embodiments of agronomic data preprocessing may include, but arenot limited to, removing data values commonly associated with outlierdata values, specific measured data points that are known tounnecessarily skew other data values, data smoothing techniques used toremove or reduce additive or multiplicative effects from noise, andother filtering or data derivation techniques used to provide cleardistinctions between positive and negative data inputs.

At block 310, the agricultural intelligence computer system 130 isconfigured or programmed to perform data subset selection using thepreprocessed field data in order to identify datasets useful for initialagronomic model generation. The agricultural intelligence computersystem 130 may implement data subset selection techniques including, butnot limited to, a genetic algorithm method, an all subset models method,a sequential search method, a stepwise regression method, a particleswarm optimization method, and an ant colony optimization method. Forexample, a genetic algorithm selection technique uses an adaptiveheuristic search algorithm, based on evolutionary principles of naturalselection and genetics, to determine and evaluate datasets within thepreprocessed agronomic data.

At block 315, the agricultural intelligence computer system 130 isconfigured or programmed to implement field dataset evaluation. In anembodiment, a specific field dataset is evaluated by creating anagronomic model and using specific quality thresholds for the createdagronomic model. Agronomic models may be compared using cross validationtechniques including, but not limited to, root mean square error ofleave-one-out cross validation (RMSECV), mean absolute error, and meanpercentage error. For example, RMSECV can cross validate agronomicmodels by comparing predicted agronomic property values created by theagronomic model against historical agronomic property values collectedand analyzed. In an embodiment, the agronomic dataset evaluation logicis used as a feedback loop where agronomic datasets that do not meetconfigured quality thresholds are used during future data subsetselection steps (block 310).

At block 320, the agricultural intelligence computer system 130 isconfigured or programmed to implement agronomic model creation basedupon the cross validated agronomic datasets. In an embodiment, agronomicmodel creation may implement multivariate regression techniques tocreate preconfigured agronomic data models.

At block 325, the agricultural intelligence computer system 130 isconfigured or programmed to store the preconfigured agronomic datamodels for future field data evaluation.

2.5 Implementation Example-Hardware Overview

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

For example, FIG. 4 is a block diagram that illustrates a computersystem 400 upon which an embodiment of the invention may be implemented.Computer system 400 includes a bus 402 or other communication mechanismfor communicating information, and a hardware processor 404 coupled withbus 402 for processing information. Hardware processor 404 may be, forexample, a general purpose microprocessor.

Computer system 400 also includes a main memory 406, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 402for storing information and instructions to be executed by processor404. Main memory 406 also may be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by processor 404. Such instructions, when stored innon-transitory storage media accessible to processor 404, rendercomputer system 400 into a special-purpose machine that is customized toperform the operations specified in the instructions.

Computer system 400 further includes a read only memory (ROM) 408 orother static storage device coupled to bus 402 for storing staticinformation and instructions for processor 404. A storage device 410,such as a magnetic disk, optical disk, or solid-state drive is providedand coupled to bus 402 for storing information and instructions.

Computer system 400 may be coupled via bus 402 to a display 412, such asa cathode ray tube (CRT), for displaying information to a computer user.An input device 414, including alphanumeric and other keys, is coupledto bus 402 for communicating information and command selections toprocessor 404. Another type of user input device is cursor control 416,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 404 and forcontrolling cursor movement on display 412. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

Computer system 400 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 400 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 400 in response to processor 404 executing one or more sequencesof one or more instructions contained in main memory 406. Suchinstructions may be read into main memory 406 from another storagemedium, such as storage device 410. Execution of the sequences ofinstructions contained in main memory 406 causes processor 404 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperate in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical disks, magnetic disks, or solid-state drives, suchas storage device 410. Volatile media includes dynamic memory, such asmain memory 406. Common forms of storage media include, for example, afloppy disk, a flexible disk, hard disk, solid-state drive, magnetictape, or any other magnetic data storage medium, a CD-ROM, any otheroptical data storage medium, any physical medium with patterns of holes,a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 402. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 404 for execution. For example,the instructions may initially be carried on a magnetic disk orsolid-state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 400 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 402. Bus 402 carries the data tomain memory 406, from which processor 404 retrieves and executes theinstructions. The instructions received by main memory 406 mayoptionally be stored on storage device 410 either before or afterexecution by processor 404.

Computer system 400 also includes a communication interface 418 coupledto bus 402. Communication interface 418 provides a two-way datacommunication coupling to a network link 420 that is connected to alocal network 422. For example, communication interface 418 may be anintegrated services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of telephone line. As another example, communicationinterface 418 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, communication interface 418sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.

Network link 420 typically provides data communication through one ormore networks to other data devices. For example, network link 420 mayprovide a connection through local network 422 to a host computer 424 orto data equipment operated by an Internet Service Provider (ISP) 426.ISP 426 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 428. Local network 422 and Internet 428 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 420and through communication interface 418, which carry the digital data toand from computer system 400, are example forms of transmission media.

Computer system 400 can send messages and receive data, includingprogram code, through the network(s), network link 420 and communicationinterface 418. In the Internet example, a server 430 might transmit arequested code for an application program through Internet 428, ISP 426,local network 422 and communication interface 418.

The received code may be executed by processor 404 as it is received,and/or stored in storage device 410, or other non-volatile storage forlater execution.

3. Identifying Management Zones Based on Historical Yield DATA

A management zone usually includes one or more subregions within anagricultural field that have similar limiting factors influencing yieldsof crops harvested from the subregions. Subregions that belong to thesame management zone can usually be managed uniformly.

In an embodiment, management zones are created automatically usingspecialized processors. An automatic creation of the zones may includeseveral processing steps, some of which are performed eithersequentially or in parallel.

Creating management zones may start with receiving yield datarepresenting yields of crops harvested from an agricultural field. Theyield data may include historical, sub-field yield maps, or any othertypes of data representing the yield information.

In an embodiment, received yield data is preprocessed. In somesituations, preprocessing is optional; in other situations,preprocessing is mandatory. Preprocessing may be performed to correctvarious problems with the yield data. This may include identifying andremoving outliers, determining whether any yield data for the field ismissing, generating substitute values for the missing data, orcorrecting errors in the received data.

Received yield data may also be normalized. This may include convertingthe received yield data to data that is within the same data range.Yield data may also be processed by applying smoothing functions to thedata. Smoothing of the data may help to eliminate outliers, fill in themissing data records, and correct inaccurate observations.

Data that has been preprocessed, normalized and smoothed may be used todelineate management zones. Delineation may include classifying thefield into different productivity regions. Through this process, one ormore management zones may be created, and each of the zones may beidentified as different from the remaining zones because it producesdifferent yield of crops than other zones.

In an embodiment, a set of management zones is post-processed.Post-processing may include removing undesirably fragmented or smallzones, and merging them with other, larger zones.

In an embodiment, a set of first merged management zones is used toautomatically control a computer control system of one or more ofseeding, irrigation, nitrogen application, and harvesting operations.

In an embodiment, a process of creating management zones is fullyautomated and is executed fast enough to operate in real time. Theprocess allows creating management zones that are spatially contiguousand have reasonable sizes.

The process may also provide a quality measure to tune variousparameters used in the delineation steps. A quality measure may beconfigured to mathematically model and balance the compactness of yielddata within each zone and the separation of yield data between differentzones. Using the quality measure allows generating management zones thathave not only homogeneous yields within each zone and year, but alsohave different yield patterns between each other. The differentiation ofthe yield patterns among different zones allows customizing thecultivations practices for each individual zone.

3.1 Management Zones Creating Pipeline

In the context of precision agriculture, management zones are contiguoussubregions of a field with a relatively homogeneous combination of yieldlimiting factors, such that the optimal rate of a specific crop input ormanagement practice is reasonably uniform within each zone.

One of the objectives for creating the zones is to divide the entireagricultural field into different productivity regions with distinctivespatial-temporal yielding behaviors. Creating, or identifying, suchzones may help and guide the crops growers by providing them withrecommendations for seeding rate selections based on the monotonicrelationship found between observed yields.

In an embodiment, management zones are delineated within an agriculturalfield using a management zone creating pipeline.

FIG. 7 depicts an example embodiment of a management zone creationpipeline. FIG. 7 represents programmed processing steps and mayrepresent an algorithm for use in programming the instructionspreviously discussed for FIG. 1. Management zone creating pipeline 701includes processing blocks for actions performed sequentially, inparallel or that are optional as further described in this section.

Block 702 represents program instructions for receiving data. In block702, yield data is received; for example, system 130 (FIG. 1) receivesyield data as part of the field data 106. The yield data may includehistorical yield maps at the field level or sub field level. The mapsrepresent spatio-temporal yielding patterns for the sub-fields and areused to classify a field into regions with distinctive or differentproductivity potentials.

Yield data may be received from different sources such as researchpartners (RP), agencies, organizations, growers and others. Yield datamay include information about yield of crops harvested from anagricultural field within one year or multiple years. In an embodiment,yield data may also include metadata such as a field boundary, a fieldsize, and a location of each sub-field within the field.

Blocks 704, 706 and 708 represent program instructions forpreprocessing, density processing and data smoothing of the receivedyield data. Preprocessing at block 704 may be performed, for example,because some of the yield data observations for a field may be collectedoutside of corresponding field boundaries. The preprocessing may also berecommended when the yield data is provided from a field on whichmultiple crops were planted in the same season.

Instructions for blocks 704, 706 and 708 may be executed selectively,optionally, sequentially, or in parallel. The manner in which the tasksare selected can vary based on the implementation and the quality ofreceived yield data. For example, some of the received yield data mayneed preprocessing but not smoothing. Other data may need only densityprocessing. Selecting one or more of blocks 704, 706, 708 may be basedon manual or machine inspection of the received yield data as part ofblock 702.

In block 704, preprocessing may include identifying and removing yieldobservations that are outside of their corresponding field boundaries.Preprocessing may also include identifying, and removing, the yieldobservations if multiple crops were planted within the field in the sameseason. Other examples of yield data preprocessing are described inconnection with FIG. 8.

In block 706, yield data is processed based on data density. Datadensity processing may be performed to normalize the yield data acrossdifferent crops and fields. In an embodiment, data density processingcomprises using an empirical cumulative distribution function (ECDF)transformation, which may be performed on the yield records for eachfield and year so that the transformed yield data is within a certainrange across different crops and fields. For example, the ECDF may beapplied to the received yield data to transform the data intotransformed yield data in the range of [0, 1]. Once the yield data istransformed, the transformed yield data may be compared across differentyears and crops, such as corn, soy, or wheat.

In block 708, yield data is processed by smoothing. Data smoothing mayinclude testing whether any yield data records are missing, whether theyield data records need to be further smoothed, or whether certain yielddata records need to be removed or interpolated.

In block 710, yield data is used to delineate a set of management zonesfor an agricultural field. A set of delineated management zones may berepresented using stored digital zone data, and created by applyingcentroid-based approaches, such as a K-means approach, or a fuzzyC-means approach. Details of these approaches are described furtherherein in connection with FIG. 8. The process executed in block 710 maybe repeated, as depicted by arrow 712, one or more times until thequality of the created management zones is satisfactory. The process maybe repeated using different criteria, different parameters, or differentparameter values.

One criterion that may be used to determine a quality of managementzones is compactness. Zones that are generated using a good managementzone delineation approach are compact. Generating compact zones involvesmaximizing the within-zone homogeneity. There should also be awell-defined separation between different zones to ensure that thecreated zones actually require different management practices. Thecompactness and separation of the created management zones may beevaluated by a visual assessment by either directly overlapping thedelineated zones with the yield maps, or by plotting the distribution ofyield values in each zone and year. The compactness and separation mayalso be evaluated by a quantitative assessment which defines numericmeasures to accurately quantify the compactness and separation of yieldobservations in the delineated zones. Details of determining a qualityof the created management zones as represented in zone data aredescribed further herein in connection with FIG. 8.

In block 714, a set of delineated management zones is analyzed todetermine whether some of the zones may be merged. For example, a set ofdelineated management zones may be analyzed to identify small zones andto determine whether the small zones may be merged with neighboringlarger zones.

Small zones may be identified automatically by a computer system, ormanually by a user of the computer system. For example, the computersystem may display information about the set of first management zonesto a crop grower in a graphical user interface that is programmed withwidgets or controls to allow the grower to remove undesirable fragmentedsmall zones, or to merge the fragmented small zones with larger zones.Merging of zones results in obtaining a set of merged management zones.Details about merging the management zones are described further hereinin connection with FIG. 8.

If small zones cannot be identified in a set of delineated managementzones, then the set of delineated management zones is provided to block718, as indicated by 724, and thus bypassing block 714.

The process executed in block 714 may be repeated, as depicted by arrow716, one or more times until no small zones are identified in the set ofmanagement zones. The process may be repeated using different criteria,different parameters, or different parameter values. Details aredescribed further herein in connection with FIG. 8.

In block 718, a set of management zones is post-processed.Post-processing of the management zones may include eliminating thezones that are fragmented or unusable.

The process executed in block 718 may be repeated, as depicted usingarrow 720, one or more times until a quality of created management zonesis satisfactory. The process may be repeated using different criteria,different parameters, or different parameter values. Details ofdetermining the quality of the created management zones are describedfurther herein in connection with FIG. 8.

In an embodiment, metadata about the created management zones is stored.Furthermore, a test may be performed to determine whether the process ofdelineating management zones needs to be repeated. If the delineationprocess is to be repeated, then, as indicated using arrow 722, thedelineating of the management zones is repeated in block 710.

3.2 Creating Management Zones

In an embodiment, a management zones creating process is programmed toautomatically delineate management zones within an agricultural fieldbased on any type of yield maps.

3.2.1 Yield Data

FIG. 8 depicts a method for creating management zones for anagricultural field. In step 810, yield data is received. As describedfor FIG. 7, the yield data represents yields of crops that have beenharvested from an agricultural field. Yield data may include historical,sub-field yield maps that represent spatio-temporal yielding patternsfor the sub-fields. Yield data may be provided from different sources,such as research partners, agricultural agencies or organizations,growers, governmental agencies, and others. Yield data may includeinformation about yields of crops harvested from an agricultural fieldwithin one year or within several years. In an embodiment, yield datamay also include additional information such as a field boundary, afield size, and a location of each sub-field within the field.

3.2.2 Preprocessing of Received Data

In step 820, the received yield data is preprocessed. Preprocessing ofthe yield data may be performed to reduce noise observations from theyield observations, impute missing yield values to standardize the zonedelineation step, and so forth. In an embodiment, received yield data ispreprocessed to correct certain issues with the data. The preprocessingmay include various types of data cleaning and filtering.

In an embodiment, preprocessing of yield data includes removing outliersfrom the yield data. Yield data may include sub-field yield observationsthat consist of various contaminations caused by unavoidable errorsintroduced by the way the crops are harvested, or by the way the yielddata is collected or recorded. Removing of such errors or outlierseffectively results in decontaminating the yield data.

In an embodiment, yield data received for an agricultural field isanalyzed to identify yield maps that correspond to multiple cropsplanted in the same season and in the same field. If such maps arefound, then such maps may be neglected from further processing.

In an embodiment, received yield data is analyzed to identify any yieldrecords that are outside of the field boundaries. If such yield recordsare found, then such records may be removed.

In an embodiment, received yield data is analyzed to identify yieldrecords that contain absolute zeros. Those records may be considered asmissing values, and thus may be ignored in further processing. Missingrecords may be due to the nature of their cleaning procedures. However,in some cases, those records may be subjected to a further analysis andvalidation, through which it may be determined that the records arevalid.

In an embodiment, received yield data is analyzed to identify any yieldmaps that has more than 70% missing data records. Such yield maps may beremoved from the yield data.

In an embodiment, received yield data is analyzed to determine whetherless than two years of yield maps for a field are provided. If less thantwo years of yield maps for a field are provided, then the yield mapsare not included in the zone delineation.

In embodiment, additional data preprocessing and filtering are performedon yield data. An example is adjusting to account for grain moisture.Grain moisture adjustment allows correcting the yield data records forsome fields and years that were harvested at a moisture level that isother than a standard moisture level such as 15.5% moisture.

The additional processing may also be directed to correcting yieldproductivity data caused when the experimental yield data is provided.The additional processing may include correcting of yield data if thedata was pre-smoothed by the data provider using undesired algorithms orparameters. This type of additional processing is recommended to reducethe effect of improperly smoothed yield data on the results of themanagement zones creation.

In an embodiment, yield records in the received yield data aretransformed from Latitude-Longitude coordinates to Universal TransverseMercator (UTM) coordinates, and mapped onto a grid of for example, 10m×10 m grid defined for the field. The mapping allows standardization oflocations of the yield records within the field, which assistsmanagement zone creation.

3.2.3 Imputing Missing Yield Values

In an embodiment, either raw or processed yield data for a field isplotted on a virtual geometric digital grid for the field. If no yielddata record is plotted on a particular grid, then yield data recordsfrom neighboring grids is retrieved and used to determine a particularyield data record for the particular grid.

A particular yield data record for a particular grid may be determinedusing programmed instructions that are configured to determineneighboring yield data records from neighboring grids, determine weightsfor each of the neighboring yield data records, compute a weighted sumof the neighboring yield data records, and use the computed weighted sumas the particular yield data. The weights may be inversely proportionalto a distance between the particular grid, or a center of the particulargrid, and respective neighboring grids, or their centers. If a grid sizeis for example 10 m, then a maximum distance may be set to for example,20 m, and so forth. Using this approach, the dispersed missing gridyield data may be interpolated using yield data records from theneighboring grids.

In some situations, yield data for an agricultural field may beincomplete or inaccurate. For example, some yield data may include novalid yield data records for some sub-fields. This may be due to somesystematic collection errors or improper data cleaning performed byproviders of the yield data. Furthermore, there may be inconsistency inthe yield data for the same field, but for different years. For example,when viewing multiple years of yield maps for the same field, the mapsfor some years may miss some values for a particular sub-field, whileother maps for other years may have valid values for the particularsub-field.

Some yield data may be missing data records for certain locations in anagricultural field. This may be caused by for example, an irregularlocation of a field. In some situations, yield data may contain no yielddata records for not just individual locations, but also for a group oflocations. This may be caused by problems with the data collectionequipment, data corruption, and the like. In these situations,interpolating the missing data may be difficult. However, in othercases, the missing data may be obtained by using data interpolationapproaches.

In an embodiment, missing yield data records are determined using amodel-based approach. This approach integrates spatiotemporal modelingof the yield maps with subsequent zone delineation algorithms.

In an embodiment, missing yield data records are determined usingimputation to supply missing values and ensure a delineation algorithmis provided a complete set of yield data. One of the benefits of thisapproach is its simplicity and robustness when applied to diverse fieldconditions. In this approach, it is assumed that missing yieldobservations have not been yet spatially imputed because of their longdistances to other observed locations, or grids, identified in the sameyield map.

In an embodiment, imputation is performed on a plurality of yield dataobservations. Let Y_(i,t) be the yield data observation at a location iand a year t. To impute a missing Y_(i,t), an average of Y_(i,t′) iscomputed for those years t′ in which yield data observations areavailable. This is expressed using the following equation:

$\begin{matrix}{{\hat{\mathrm{\Upsilon}}}_{i,t} = \frac{\sum_{t^{\prime} \in A_{i}}{\mathrm{\Upsilon}_{i,t^{\prime}}\left( {t^{\prime} \in A_{i}} \right)}}{\sum_{t^{\prime} \in A_{i}}{\left( {t^{\prime} \in A_{i}} \right)}}} & (1)\end{matrix}$

where A_(i) is the set of years with observed yield values at locationi, and 1(.) is an indicator function which equals to one if thecondition is (.) is true, and equals to zero otherwise.

Equation (1) may be used to determine a missing Y_(i,t) bycross-imputing yield data observations for a location i and years otherthan a year t.

After the cross imputation of the missing yield data is completed, anygrid in the field with observed yield values in at least one of theyield maps will have a full set of yield values in the yield maps forall years.

However, if a grid does not have a yield observation in any of the yieldmaps, then after performing the data imputation approach, the grid willstill be missing a yield data record. Furthermore, applying a managementzone delineation approach to the data in such a grid will not result ingenerating any zone label for the grid.

3.2.4 Empirical Cumulative Density Transformation

ECDF transformation may be used to transform the yield data into thetransformed yield data. Application of ECDF to the yield data may causetransforming the yield data records to transformed yield data records,each of which falls within a particular range. Applying ECDF to theyield data causes normalizing the yield data so that the normalizedyield data is comparable across different years and crops, such as corn,soy, and wheat.

In step 830, preprocessed data is transformed to result in creating andstoring digitally transformed yield data. Transformed yield data may begenerated by applying ECDF transformation to yield data records for eachfield and year to transform the data record values to a certain range ofvalues. For example, ECDF transformation may be applied to yield datarecords to transform the data records to be within the range of [0, 1].

3.2.5 Spatial Smoothing

Data smoothing may be performed on either raw yield data or processedyield data. That depends on a quality of the received raw yield data andon the implementation.

In an embodiment, a spatial smoothing is performed to remove measurementnoises in the raw yield observations and reduce unnecessaryfragmentation of delineated management zones. The spatial smoothing maybe performed using approaches such as a kernel-smoother, or a stationaryGaussian process.

A kernel smoother is a statistical technique for estimating a functionby using its noise observations when no parametric model for thefunction is known. The resulting estimated function is usually smooth.The estimated smooth function may be used to remove the noiseobservations from a set of observations, such as the yield data.

In an embodiment, kernel smoothers that are reliable and usefulnonparametric estimators are selected to perform a spatial smoothing ofyield data. Examples of the kernel smoothers that can be used to smooththe yield data include a Gaussian kernel, an inverse distance weightingkernel, a rectangular kernel, a triangular kernel, a Bi-Square kernel, atri-cube kernel, and a tri-weight kernel. Besides their standardparameterization, all of them are also equipped with a scale parameter hand a span parameter H such that the distance between yield dataobservations may be scaled and the observations that are more than Haway from the destination point may be omitted in the smoothing process.

Referring again to FIG. 8, in step 840, smooth transformed yield data isgenerated by smoothing the transformed yield data. Smooth transformedyield data may be generated using any of the kernel estimators describedabove.

An example kernel estimator for determining a missing Y_(i,t) yield dataobservation at a location i and a year t may be expressed using thefollowing equation:

Ŷ _(i,t)={Σ_(j) K(d _(i,j))Y _(j,t)}/{Σ_(j) K(d _(i,j))}  (2)

where K is a kernel function selected from the examples described above,Y_(j,t) is the yield data observation at a location j and a year t, andd_(i,j) is the distance between a location i and a location j.

In an embodiment, a Gaussian kernel smoother is used in equation (2). Ina Gaussian kernel smoother, parameters h and H can be either selectedempirically based on experience with the data, or quantitativelyoptimized by cross validations.

In step 850, a test is performed to determine whether the obtained yielddata is acceptable for subjecting it to a management zones delineationprocess. The test may include testing whether any yield data records arestill missing, whether the yield data records need to be furthersmoothed, or whether certain yield data records need to be removed orinterpolated.

If in step 850 it is determined that the obtained yield data isacceptable, then step 860 is performed. Otherwise, depending on theoutcome of the test, any of steps 820, 830 or 840 is performed. Forexample, if obtained yield data needs to be further preprocessed, thenstep 820 is performed. If the obtained yield data needs to betransformed again, then step 830 is performed. If the obtained yielddata needs to be smoothed again, then step 840 is performed. It is alsopossible that two or three steps of steps 820, 830 and 840 areperformed.

3.2.6 Identifying Management Zones

In an embodiment, a management zones delineation process is performedfor different values of a management class count. A management classrefers to areas in a field that have relatively homogeneous yieldlimiting factors, but that are not restricted to be spatiallycontiguous. Concept-wise, several management zones which are spatiallyseparated from each other could belong to the same management class andcould be operated in the same manner. Even though a management zone anda management class are often used interchangeably, these two terms aredistinguishable, especially in reference to the presented zone creationapproach.

In an embodiment, a delineation process is executed first for a firstcount value of the management class count, and if the quality of thegenerated zones is for some reason inadequate, then the process may berepeated for a second count value of the class count, and so forth.

Referring again to FIG. 8, in step 860, a first count value for amanagement classes count of a plurality of management classes isdetermined. Selecting a first count value for the management classes mayinclude selecting an optimal number of management classes for creatingthe zones.

An optimal number of management classes may be found using a variety ofapproaches. According to one approach, an optimal number of managementclasses is selected by using all years of training yield maps at once.In this approach, a clustering algorithm is applied to the smoothedtraining yield maps with different number of classes and for each class.Then a training zone-quality measure for each class numbers isdetermined and used to identify an optimal number of classes. An exampleof the measure is a measure that checks for compactness and separationof classes and for each class. The compactness and separation of theclasses and for each class are examples of the qualities that areconsidered in determining the final zones.

According to another approach, an optimal number of management classesis selected by carrying out a leave-one-year-out cross-validationapproach for training yield maps.

Once a first count value is determined for a count of a plurality ofclasses, a first set of management zones is generated in step 870. Thefirst set of management zones may be generated, for example, using amanagement zones delineation process that is performed using either aclustering approach or a region merging approach. Examples of aclustering approach may include centroid-based multivariate clusteringapproaches, such as a K-means approach and a fuzzy C-means approach.Examples of a region merging approaches may include agglomerative regionmerging approaches, such as a hierarchical region-based segmentationapproach.

3.2.6.1 K-Means Approach

In an embodiment, a management zones delineation process is implementedusing a K-means approach. K-means approach aims to partition a set ofyield data observations into k clusters in which each observationbelongs to the cluster with the nearest mean. Let assume that Y_(i,t) isthe yield observation at location i in year t where i belongs to a set{1, 2, . . . T}. Furthermore, let assume that Y_(i)={Y_(i,1), Y_(i,2). .. , Y_(i,T)} for any i=1, 2, . . . , n. Then, for a given k from a set{1, 2 . . . n}, the K-means approach aims to find the k sets S={S₁, S₂ .. . S_(k)} such that the within-set sum of squares is minimized. Thismay be expressed using the following equation:

$\begin{matrix}{\min\limits_{S}{\sum\limits_{i = 1}^{n}{\sum\limits_{j = 1}^{k}{\left( {\mathrm{\Upsilon}_{i} - \mu_{j}} \right)^{2}\left( {\mathrm{\Upsilon}_{i} \in S_{j}} \right)}}}} & (3) \\{{so}\mspace{14mu} {that}\text{:}} & \; \\{{{{\sum\limits_{j = 1}^{k}{\left( {\mathrm{\Upsilon}_{i} \in S_{j}} \right)}} = 1},{{\forall i};}}{{{{and}\mspace{14mu} \mu_{j}} = \frac{\sum_{i = 1}^{n}{\mathrm{\Upsilon}_{i}\left( {\mathrm{\Upsilon}_{i} \in S_{j}} \right)}}{\sum_{i = 1}^{n}{\left( {\mathrm{\Upsilon}_{i} \in S_{j}} \right)}}},{\forall{j.}}}} & (4)\end{matrix}$

One of the advantages of using the K-means approach in the managementzone delineation process is its simplicity. One of the disadvantages ofusing the K-means approach is that it does not consider spatiallocations of the yield data observations within the field. As a result,a direct output from K-means clustering is the management class labelsof each pixel i, and some additional steps may be needed to identifyspatially contiguous zones. Moreover, it is recommended to use wellpreprocessed yield maps before using the K-means approach. If the yieldmaps are insufficiently preprocessed, then the results produced by theK-means approach may include many fragmented small zones.

The k that belongs to a set {1, 2 . . . n} corresponds to the firstcount value, and represents a number of management classes describedabove. The k parameter is also referred to as a tuning parameter in theK-means approach. When k increases, the within-set sum of squares inequation (3) decreases for the same set of data, and the within-classcompactness increases. However, when k is increased above a certainthreshold, the K-means approach may lead to over-segmentation of thefield, and the within-class compactness may need to be balanced.

3.2.6.2 Fuzzy C-Means Approach

In an embodiment, a management zones delineation process is implementedusing a fuzzy C-means approach. Fuzzy C-means, also called fuzzyK-means, is a fuzzy extension of the K-means approach. In the fuzzyC-means approach, instead of assigning a hard label to each observationY_(i), each observation may be assigned to more than one cluster withdifferent membership levels.

Let assume that for a given k, from a set {1, 2 . . . n}, the fuzzyC-means algorithm aims to find the centers C={C₁, C₂, . . . , C_(k)} anda n×k membership matrix U=[u_(ij)], where u_(i,j) belongs to a set [0,1] such that the following weighted sum of squares is minimized. Thismay be expressed using the following equation:

$\begin{matrix}{\min\limits_{C,U}{\sum\limits_{i = 1}^{n}{\sum\limits_{j = 1}^{k}{u_{i,j}^{m}{{\mathrm{\Upsilon}_{i} - \mu_{j}}}^{2}}}}} & (5) \\{{where}\text{:}} & \; \\{{{0 \leq u_{i,j} \leq 1},{\forall i},{j;}}{{{\sum\limits_{j = 1}^{k}u_{i,j}} = 1},{{\forall i};}}{{0 < {\sum\limits_{i = 1}^{n}u_{i,j}} < n},{\forall{j.}}}} & (6)\end{matrix}$

In the equation (5), ∥.∥ stands for norm, such as the Euclidean norm.The m is the fuzzifier with m≥1, and determines the level of clusterfuzziness. In general, the larger m results in fuzzier clusters and inthe lower limit when m=1, and thus the fuzzy C-means approachdegenerates to K-means approach. When there is no strong experimentationor domain knowledge, the common choice for m is 2.

Similar to K-means approach, the direct optimization for equation (5)may be difficult, and an iterative approach is often carried out toperform the optimization step by step. For example, C and U may satisfythe following relationship to be the optimal solution of equation (5):

$\begin{matrix}{{C_{j} = \frac{\sum_{i = 1}^{n}{u_{i,j}^{m}\mathrm{\Upsilon}_{i}}}{\sum_{i = 1}^{n}u_{i,j}^{m}}},{{\forall j};}} & (7) \\{where} & \; \\{{u_{i,j} = \frac{1}{\sum_{j = 1}^{k}\left( \frac{{\mathrm{\Upsilon}_{i} - C_{j}}}{{\mathrm{\Upsilon}_{i} - C_{k}}} \right)^{\frac{2}{m - 1}}}},{\forall i},{j.}} & (8)\end{matrix}$

In an embodiment, an iterative algorithm starts with a randomlyinitialized membership matrix U=[u_(i,j)], and then repeatedly updatesthe cluster centers C and the membership matrix U based on equations(7)-(8), respectively, until their values converge. After that, themanagement class label for a pixel i may be determined as:

arg max_(j=1, . . . ,k) u_(i,j).   (9)

In an embodiment, compared to the K-means approach, the computationalcomplexity of the fuzzy C-means approach is slightly higher. However,upon assigning crisp management class labels at the end, the outputsgenerated by the K-means approach and the outputs generated by the fuzzyC-means approach may be very similar.

3.2.6.3 Region Merging Approach

In an embodiment, a management zones delineation process is programmedto use hierarchical region-based segmentation. In this approach, twozones are neighboring to each other if, and only if, at least one pairof pixels between the two zones are neighbors based on the nearest4-neighbor rule.

In an embodiment, a dissimilarity score for neighboring zones iscomputed. When calculating the dissimilarity score for any twoneighboring zones, a modified complete-link distance measure of theiryield observations is adopted. For example, let S_(A) and S_(B) are thesets of pixels belonging to zone A and zone B, respectively. Thedissimilarity score between zone A and zone B may be calculated asfollows:

d _(A,B)=Quantile({mean_(t) |Y _(i,t) −Y _(j,t) |, s.t. i∈S _(A)&j∈S_(B)}, 95%)   (10)

Therefore, if the dissimilarity score between two zones A and B isd_(A,B), then it means that 95% of the between-zone pairs of pixels havea difference no larger than d_(A,B) absolute difference in their yieldobservations on average over all years.

In an embodiment, a hierarchical region-based segmentation approach isimplemented using code instructions shown in Table 1, below:

TABLE 1 Algorithm 1: The region merging algorithm for zone creationData: yield maps, dissimilarity threshold ∈ Result: zone labels for eachpixel  1 begin  2 | Initialization: each pixel is one zone ;  3 | whilemore than one zone do  4 | | calculate the dissimilarity score betweeneach pair of | | neighboring zones based on their yield observations ; 5 | | let d = the minimum dissimilarity score;  6 | | if d ≤ ∈ then  7| | | merge the most similar pair of zones;  8 | | | update proximityrelation of the zones;  9 | | else 10 | | | return the current zonelabels ; 11 | | end 12 | end 13 end

Table 2 below summarizes and compares three management zones delineatingapproaches described above.

TABLE 2 Tuning Algorithm Input Output Parameter Note K-means yield classk(k ∈ {1, 2, . . . , n}) computa- observations labels tionally {Y_(i,t)}fastest Fuzzy yield class k(k ∈ {1, 2, . . . , n}) similar C-meansobservations labels output {Y_(i,t)} as K-means but slower Region yieldzone e(e ∈ [0, 1]) computa- merging observations labels tionally{Y_(i,t)}; slowest, pixel spatial finer tuning, location spatiallycontiguous zones

One of the advantages of the region merging approach is that it utilizesa spatial location of the yield observations when creating themanagement zones. The approach is expected to generate spatiallycontiguous zones naturally unless the dissimilarity threshold is set toostrict or the yield maps are too rough. In addition, as thedissimilarity threshold e is a continuous tuning parameter, as opposedto k, which takes only positive integers in K-means or fuzzy C-means,the hierarchical region merging algorithm may have more flexibility tofine tune the resulting zone delineation, and satisfy the diverse needsfrom different growers.

Another advantage of the region merging approach is that the regionmerging algorithm generates zone labels directly without class labels.

However, although the region merging approach may not include anadditional processing to present management zones, some post processingof the zone properties may be recommended.

In step 880, a test is performed to determine whether a count ofmanagement classes is to be changed. If the count is to be changed, thenstep 890 is performed. Otherwise, step 895 is performed. A count ofmanagement classes corresponds to a tuning parameter described above.

In step 890, a second count value for a count of management classes fromamong a plurality of management classes is determined, and steps 870-880are repeated for the second count value.

3.2.7 Post Processing

In an embodiment, a set of management zones is post-processed.Post-processing of the management zones may be performed for variousreasons. Post-processing may be performed for example, to clean smallisolated zones to make sure all zones are spatially contiguous and havereasonable sizes. Small isolated zones are the zones that may be toosmall to cause a crop grower to change his agricultural practices. Smallisolated zones are also referred to as fragmented zones. Post-processingmay also be performed to remove small isolated zones. Even with spatialsmoothing of the yield maps during the yield data preprocessing phase,the set of management zones may include small isolated zones that may bedifficult to manage individually.

In an embodiment, a test is performed to determine whether a size of azone is smaller than a user-defined threshold s. If the size of the zoneis smaller than the threshold s, then the zone is merged with its mostsimilar neighboring large zone that is larger than the small zone. Thezone/class label of the large zone may be assigned to the merged zone.

If the class labels are obtained from the K-means or fuzzy C-meansapproaches, however, then two additional steps may be performed. Forexample, before zone cleaning, a set of zones may be constructed basedon the class labels and the spatial location of pixels so that the sizeand neighboring zones of each management zone may be identified. Afterthe zone cleaning, the class labels may be recovered from theconstructed set, and the additional zone merges may be performed.

FIG. 9 depicts a method for management zones post-processing. In step910, a test is performed to determine if any small zone next to a largezone is present in a set of management zones.

If in step 920 it is determined that no small zone next to a large zoneis present in a set of management zones, then in step 930, the set ofmanagement zones is stored. The set of management zones may be stored ina storage device, a memory unit, a cloud storage service, or any otherstorage device. The set of management zones may be used to determineseeding recommendations for growers, for research purposes, and forproviding information to other agencies.

However, if in step 920 it is determined that at least one small zone ispresent next to a large zone in a set of management zones, then thesmall zones are merged with their respective large zones.

A merging of the zones may be performed for each identified small zone,as indicated in steps 950-960. Once all identified small zones aremerged with their respective large zones, in step 970 the resulting setof merged management zones is stored. The set of merged management zonesmay be stored in a storage device, a memory unit, a cloud storageservice, or any other storage device. The set of management zones may beused to determine seeding recommendations for growers, for researchpurposes, and for providing information to other agencies.

3.3 Performance Considerations

Accuracy of the approach for delineating management zones in anagricultural field depends on a variety of factors. For example,assuming that the quality of the yield maps is comparable from year toyear, the quality and accuracy of the management zones delineationincreases proportionally to the number of yield maps from differentyears provided to the system. Hence, for a given field, the more yearsof yield maps are provided, the higher the quality and accuracy ofmanagement zones delineation may be.

3.4 Usefulness of Management Zones Delineation

Using the techniques described herein, a computer can determine aplurality of management zones based on digital data representinghistorical yields harvested from an agricultural field. The techniquesherein can enable computers to determine the plurality of contiguousregions within an agricultural field that have similar limiting factorsinfluencing the harvested yields of crops. The presented techniques canalso enable the agricultural intelligence computing system toautomatically determine the regions that belong to the same managementzone and to generate recommendations for crop growers with respect toseeding, irrigation, application of fertilizers such as nitrogen, and/orharvesting.

Furthermore, the presented techniques can enable the agriculturalintelligence computing system to save computational resources, such asdata storage, computing power, and computer memory of the system, byimplementing a programmable pipeline configured to automaticallydetermine management zones for a field based on digital data. Theprogrammable pipeline can automatically generate recommendations andalerts for farmers, insurance companies, and researchers, therebyallowing for a more effective agricultural management in the seedingschedules, operations of agricultural equipment, and application ofchemicals to fields, protection of crops and other tangible steps in themanagement of agricultural field. Management zones created based onhistorical yield data may be particularly useful in certain agriculturalpractices, such as selecting a seeding rate. For example, informationabout the created management zones may be used to generaterecommendations for crop growers. The recommendations may pertain toseed and seeding selections. Selecting a recommended seeding rate basedon the identified management zones may be very helpful in increasingharvested yields.

3.5 Extensions

In an embodiment, a process of delineating management zones within anagricultural field is enhanced by taking into consideration not only thehistorical yield maps, but also weather forecast information. In thisapproach, the weather information may be used to provide explanationsfor inconsistencies in yield observations recoded in the historicalyield maps.

A process of delineating management zones within a field may also beenhanced by providing information about soil properties andtopographical properties of the field to the process. Usually, permanentsoil and topographical properties play more important roles indetermining sub-field yield variability than those transient factorssuch as weather.

Accuracy of the information about management zones may be furtherimproved if the growers can provide sufficient historical yield data orsub-field yield maps to the system. Furthermore, accuracy of theinformation about management zones may be improved if the growers canprovide the historical yield data in the required format and to therequired input site.

What is claimed is:
 1. A method comprising: using instructionsprogrammed in a computer system comprising one or more processors andcomputer memory, receiving digital yield data representing yields ofcrops that have been harvested from an agricultural field; using theinstructions programmed in the computer system, transforming the digitalyield data, by applying an empirical cumulative density function to thedigital yield data, to generate transformed digital yield data; based onthe transformed digital yield data, using the instructions programmed inthe computer system, smoothing the transformed digital yield data toresult in generating and storing smooth transformed digital yield data;using the instructions programmed in the computer system, determining afirst count value of a plurality of management classes, wherein theplurality of management classes includes areas in the agricultural fieldthat have relatively homogeneous yield limiting factors, but are notrestricted to be spatially contiguous; using the instructions programmedin the computer system, generating a plurality of first management zonesfor the agricultural field by clustering the smooth transformed digitalyield data and using the first count value; using the instructionsprogrammed in the computer system, generating a set of first mergedmanagement zones by merging one or more small management zones, of theplurality of first management zones, with their respective similarneighboring large zones; using the instructions programmed in thecomputer system, storing the set of first merged management zones andthe first count value in a set of management zone metrics.
 2. The methodof claim 1, further comprising: determining a second count value for theplurality of management classes; generating a plurality of secondmanagement zones by clustering the smooth transformed digital yield dataand using the second count value; generating a set of second mergedmanagement zones by merging one or more small management zones, of theplurality of second management zones, with their respective similarneighboring large zones; storing the set of second merged managementzones and the second count value in the set of management zone metrics.3. The method of claim 2, further comprising: generating a managementzone recommendation based on the set of management zone metrics byevaluating a delineation quality of management zones stored in the setof management zone metrics.
 4. The method of claim 3, wherein thedigital yield data comprises data representing yield informationcollected for a multi-year time period, and wherein the method furthercomprises determining a recommended class count for the plurality ofmanagement classes based on the set of management zone metrics.
 5. Themethod of claim 3, wherein the digital yield data comprises datarepresenting yield information collected for one year, and wherein themethod further comprises determining a recommended class count for theplurality of management classes based on the set of management zonemetrics.
 6. The method of claim 1, further comprising obtaining thedigital yield data from a plurality of historical yield maps.
 7. Themethod of claim 1, further comprising preprocessing the digital yielddata by performing one or more of: removing yield maps that correspondto multiple crops planted in the same season in the agricultural field,removing yield maps that include yield records outside boundaries of theagricultural field, marking yield records of absolute zeros as missingvalues, removing yield records for fields that have less than two yearsof yield maps period, or removing yield maps that have more than acertain count of missing values.
 8. The method of claim 1, furthercomprising using the empirical cumulative density function to transformthe digital yield data into the transformed digital yield data includingtransformed digital yield data records, each of which falls in aparticular range.
 9. The method of claim 1, further comprisinggenerating the smooth transformed digital yield data by performing oneor more of: removing outliers data from the transformed digital yielddata, determining one or more missing values in the transformed digitalyield data and including the one or more missing values in the smoothtransformed digital yield data, or performing a spatial smoothing on thetransformed digital yield data.
 10. The method of claim 1, wherein theset of first merged management zones includes contiguous subregionswithin the agricultural field that have similar yield limiting factorsand are uniformly managed; wherein the first count value for theplurality of management classes indicates a count of management classesin the plurality of management classes.
 11. The method of claim 1,further comprising applying any one of: a K-means approach, a fuzzyC-means approach, or a region merging approach.
 12. The method of claim1, further comprising generating the set of first merged managementzones by executing computer instructions to perform one or more of:applying hierarchical agglomeration; evaluating a delineation quality ofmanagement zones by applying one or more clustering validation measuresto the set of management zone metrics.
 13. The method of claim 1,further comprising using the set of first merged management zones toautomatically control a computer control system of one or more ofseeding, irrigation, nitrogen application, and harvesting apparatus. 14.A data processing system comprising: a memory; one or more processorscoupled to the memory and programmed to: receive digital yield datarepresenting yields of crops that have been harvested from anagricultural field; transform the digital yield data, by applying anempirical cumulative density function to the digital yield data, togenerate transformed digital yield data; based on the transformeddigital yield data, smooth the transformed digital yield data to resultin generating and storing smooth transformed digital yield data;determine a first count value of a plurality of management classes,wherein the plurality of management classes includes areas in theagricultural field that have relatively homogeneous yield limitingfactors, but are not restricted to be spatially contiguous; generate aplurality of first management zones for the agricultural field byclustering the smooth transformed digital yield data and using the firstcount value; generate a set of first merged management zones by mergingone or more small management zones, of the plurality of first managementzones, with their respective similar neighboring large zones; store theset of first merged management zones and the first count value in a setof management zone metrics.
 15. The data processing system of claim 14,wherein the one or more processors are programmed to: determine a secondcount value for the plurality of management classes; generate aplurality of second management zones by clustering the smoothtransformed digital yield data and using the second count value;generate a set of second merged management zones by merging one or moresmall management zones, of the plurality of second management zones,with their respective similar neighboring large zones; store the set ofsecond merged management zones and the second count value in the set ofmanagement zone metrics.
 16. The data processing system of claim 15,wherein the one or more processors are programmed to: generate amanagement zone recommendation based on the set of management zonemetrics by evaluating a delineation quality of management zones storedin the set of management zone metrics.
 17. The data processing system ofclaim 14, wherein the digital yield data representing crop yieldsharvested from the agricultural field is obtained from a plurality ofhistorical yield maps.
 18. The data processing system of claim 14,wherein the digital yield data representing crop yields harvested fromthe agricultural field is preprocessed by performing one or more of:removing yield maps that correspond to multiple crops planted in thesame season in the agricultural field, removing yield maps that includeyield records outside boundaries of the agricultural field, markingyield records of absolute zeros as missing values, removing yieldrecords for fields that have less than two years of yield maps period,or removing yield maps that have more than a certain count of missingvalues.
 19. The data processing system of claim 14, wherein theempirical cumulative density function transforms the digital yield datato the transformed digital yield data including transformed digitalyield data records, each of which falls in a particular range.
 20. Thedata processing system of claim 14, wherein the smooth transformeddigital yield data is generated by performing one or more of: removingoutliers data from the transformed digital yield data, determining oneor more missing values in the transformed digital yield data andincluding the one or more missing values in the smooth transformeddigital yield data, or performing a spatial smoothing on the transformeddigital yield data.